// JS仅有Number这个数值类型，而Number采用的时IEEE 754 64位双精度浮点数编码
// 当64bit的存储空间无法存储完整的无限循环小数，
// 而IEEE 754 Floating - point采用round to nearest, tie to even的舍入模式


function numbersequal(a, b) {
    return Math.abs(a - b) < Number.EPSILON;
}
var a = 0.1 + 0.2, b = 0.3;
console.log(numbersequal(a, b)); //true

Number.EPSILON = (function () {   //解决兼容性问题
    return Number.EPSILON ? Number.EPSILON : Math.pow(2, -52);
})();
//上面是一个自执行函数，当JS文件刚加载到内存中，就会去判断并返回一个结果。
function numbersequal(a, b) {
    return Math.abs(a - b) < Number.EPSILON;
}
//接下来再判断   
var a = 0.1 + 0.2, b = 0.3;
// console.log(a); //这里就为true了

var b = 3;



(function () {
    b = 5; var b = 2;
})()
console.log(b);